import java.util.Arrays;
import java.util.Scanner;

public class Text {


    public static int[] aNew(int[] array){
        int[] ret = new int[array.length];
        ret = Arrays.copyOf(array,array.length);
        int left = 0;
        int right = ret.length - 1;

        while(left < right){
            if(ret[left] % 2 == 0){ // 偶数
                int tmp = ret[left];
                ret[left] = ret[right];
                ret[right] = tmp;
                left++;
                right--;
            }
        }
        return ret;
    }

    public static void main(String[] args) {
        int[] array = new int[]{1,2,3,4,5,6};

        String str = Arrays.toString(aNew(array));
        System.out.println("111");
        System.out.println(str);
    }

    //汉诺塔问题
	
	public static void hanoi(char A,char B){
			System.out.print(A+ "-> "+B + " ");
	}
	

    public static void fun(int n,char A,char B,char C){
        if(n == 1){
            hanoi(A,C);
            return;
        }
        else {
            fun(n-1,A,C,B );
            hanoi(A,C);
            fun(n-1,B,A,C);
        }
    }

    public static void main111(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        fun(n,'A','B','C');
    }


    //使用函数求最大值
    //创建方法求两个数的最大值max2，随后再写一个求3个数的最大值的函数max3。
    //要求：在max3这个函数中，调用max2函数，来实现3个数的最大值计算
    public static int max2(int n1,int n2){
        return n1>n2?n1:n2;
    }

    public static int max3(int n,int n1,int n2){
        return max2(n1,n2)>n?max2(n1,n2):n;
    }

    public static void main15(String[] args) {
        System.out.println(max3(123,124,1));
    }


    //在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码，求出结果
    public static int add(int n1,int n2){
        return n1+n2;
    }

    public static double add(double d1, double d2){
        return d1+d2;
    }


    //求最大值方法的重载
    public static int max(int n1,int n2){
        return n1>n2?n1:n2;
    }

    public static double max(double d1,double d2){
        return d1>d2?d1:d2;
    }

    public static void main14(String[] args) {

        System.out.println(add(1,3));
        System.out.println(add(1.23,7.23));

        System.out.println(max(1,2));
        System.out.println(max(1.23,9.00));

    }


    public static int fib1(int n){
        int f1 = 1;
        int f2 = 1;
        int f3 = 0;
        for (int i = 3; i <= n; i++) {
            f3 = f1+f2;
            f1 = f2;
            f2 = f3;
        }

        return f3;
    }

    // 斐波那契数列
    // 递归
    public static int fib(int n){
        if(n==1||n==2){
            return 1;
        }
        return fib(n-1) + fib(n-2);
    }


    //输入123 求 1+2+3
    public static int sum(int n){
        if(n < 10){
          return n;
        }
        return n%10 + sum(n/10);
    }

    public static void main13(String[] args) {
        System.out.println(sum(123));
        System.out.println(fib1(4));
    }


    public static void print1(int n){
        if(n < 10){
            System.out.print(n % 10);
            return;
        }
        print1(n / 10);
        System.out.print(n%10);
    }

    // 顺序打印一个数
    public static void print2(int n){
        if(n > 10){
            print2(n / 10);
        }
        System.out.print(n % 10);
    }


    public static int sum1(int n){
        if(n == 0){
            return 0;
        }
        return n+sum(n-1);
    }


    //递归求1+到10
    public static void main12(String[] args) {
//        System.out.println(sum(10));
        print1(123);
        System.out.println();
        print2(123);
    }


    //求一个整数，在内存当中存储时，二进制1的个数。
    //一个数与上一个数-1 与几次就有几个1
    public static void main11(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n1 = sc.nextInt();
        int n = 0;
        while (n1 != 0) {
            n++;
            n1 = n1 & (n1 - 1);
        }
        System.out.println(n);
    }

    //求2个整数的最大公约数
    //辗转相除法
    public static void main10(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n1 = sc.nextInt();
        int n2 = sc.nextInt();
        int max = n1 > n2 ? n1 : n2;
        int min = n1 < n2 ? n1 : n2;
        int num = max % min;

        while (num != 0) {
            max = min;
            min = num;
            num = max % min;
        }
        System.out.println(min + "是这两个数的最大公约数");


//        for (int i = n; i > 0; i--) {
//            if( n1 % i == 0 && n2 % i ==0 ){
//                System.out.println("这两个数的最大公约数是" + i);
//                break;
//            }
//        }
    }


    //    计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
    //flag 来改变正负
    public static void main9(String[] args) {

        double sum = 0;
        int flag = 1;
        for (int i = 1; i <= 100; i++) {
            sum += 1.0 / i * flag;
            flag = -flag;
        }
        System.out.println(sum);
    }

    public static void main8(String[] args) {
        int a = 10;
//        System.out.println(!a); //!只能用于boolean类型
    }


    // 水仙花数
    // 153＝1^3＋5^3＋3^3
    public static void main7(String[] args) {
        Scanner sc = new Scanner(System.in);
        int d = sc.nextInt();
        double gw = d / 100;
        double sw = d / 10 % 10;
        double bw = d % 100 % 10;
        double num = Math.pow(gw, 3) + Math.pow(sw, 3) + Math.pow(bw, 3);
        if (num == d) {
            System.out.println("这个数是水仙花数");
        } else {
            System.out.println("这个数不是水仙花数");
        }
    }


    public static void main4(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextInt()) {
            int n = sc.nextInt();

            //外循环(相当于坐标x)：图形总共n行，我们就循环n次
            for (int i = 0; i < n; i++) {
                //内循环(相当于坐标y)结合上一行来看就是第i行第j个
                for (int j = 0; j < n; j++) {
                    //观察过坐标图不难发现*都处于【横纵坐标相等】或者【和等于n-1】时
                    if (i == j || (i + j) == n - 1) {
                        System.out.print("*");
                    } else {
                        System.out.print(" ");
                    }
                }
                //外循环完成一次，代表一行写完，此处换行进行下一次循环
                System.out.println();
            }
        }
//
//        public static void mian3(String[] args){
//            Scanner sc1 = new Scanner(System.in);
//            int n = sc1.nextInt();
//            for (int i = 0; i < n; i++) { //x轴的坐标
//                for (int j = 0; j < n; j++) { // y轴的坐标
//                    if (i == j || i + j == n - 1) {
//                        System.out.print("*");
//                    } else {
//                        System.out.print(" ");
//                    }
//                }
//                System.out.println();
//            }
//        }

//    //给定一个数字,判定这个数字是否为素数
//         public static void main2(){
//            Scanner scanner = new Scanner(System.in);
//            System.out.println("请输入你想要确定的数字");
//            int num = scanner.nextInt(); // 输入一个数字
//            int n = 0;
//            for (int i = 2; i < num; i++) {
//                if (num % i == 0) {
//                    n++;
//                }
//            }
//            if (n == 0) {
//                System.out.println(num + "是一个素数");
//            } else {
//                System.out.println(num + "不是一个素数");
//            }
//
//            Scanner sc3 = new Scanner(System.in);
//            System.out.println("请输入您的名字");
//            String name = scanner.nextLine();
//            System.out.println(name);
//        }
//
        //在1~100中间所有整数中出现9的次数
//        public static void main5(String[] args){
//            int num = 0;
//            for (int i = 1; i <= 100; i++) {
//                if (i % 10 == 9) {
//                    num++;
//                }
//                if (i / 10 == 9) {
//                    num++;
//                }
//            }
//            System.out.println(num);
//        }
    }
}